home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 4 / FM Towns Free Software Collection 4 - Disc 1.iso / msdos / tkshl / tkcl2.doc < prev    next >
Text File  |  1991-10-18  |  17KB  |  406 lines

  1. *****************************************************************************
  2.           TKCL(TK-team Command Language)
  3.  
  4.            文法仕様書・Ver 2.0   1990-08-08
  5.  
  6.                                     (C) 1990 TK-team amusement ware
  7.  
  8.    ※この仕様書はTKSHL.EXE(Ver 2.0)に対応しています
  9.  
  10.   TKCLに対するご質問・ご要望につきましては、以下にご連絡ください
  11.  
  12.      連絡先:TKチーム
  13.             ハンドル   NIF-ID     MAD_i-ID
  14.           ------------------------------------
  15.       FM移植担当     WITNESS  QFG01032     ---
  16.            ------------------------------------
  17.       オリジナル作成     としくん      NBB00261   MAD_0238
  18.            Qたらう      MHA00175  MAD_0246
  19.              DANDY     NAH00602   MAD_0247
  20.           ------------------------------------
  21.  
  22. *****************************************************************************
  23.  
  24. 1. 初めに
  25.  
  26.   TKCLは、Command  Interpreter であるTKSHL.EXEによって実行さ
  27.   れる、ゲ-ム用言語である。記述されたテキストファイルはTKSHL.EXE
  28.  により順次実行されていく。また、複数のテキストファイルで1つのゲ-ムを構成
  29.  することも可能である。TKCLは画像デ-タの制御機能も持つが、画像デ-タは
  30.  別ファイルとして持たなければならない。音楽デ-タの制御については現在の所
  31.  未サポ-トである
  32.  
  33. 2. スクリ-ンの分割
  34.  
  35.   TKCLでは半角で80文字×25行のスクリ-ンを対象とする
  36.  (0,0)
  37.    -------------------------------------------------------------
  38.    |*(2,1)*************************************                |
  39.    |*                                         *                |
  40.    |*                                         *                |
  41.    |*  メイン画像領域                         * *(59,6)******* |
  42.    |*                                         * *            * |
  43.    |*                                         * *            * |
  44.    |*                                         * * マスコット 領域 * |
  45.    |*                                         * *            * |
  46.    |*                                         * *            * |
  47.    |***********************************(57,18)* ******(77,18)* |
  48.    |+--------------------------------------------------------+ |
  49.    ||                                                        | |
  50.    || メッセージエリア(ユーザーは気にしなくて良い)         | |
  51.    |+--------------------------------------------------------+ |
  52.    -------------------------------------------------------------(79,24)
  53.  
  54.  2.1 画像領域
  55.  
  56.    グラフィック画像を表示するための領域である。この領域はTKCLで直接
  57.   制御することが出来ない。TKCLによって呼び出される画像ファイルは基本
  58.   的には領域を気にしなくともよい。ただし、シナリオメッセージ表示部分との
  59.   関係で、重なってしまうと見にくくなってしまうので、考慮する事。
  60.   画像のセーブ/ロードには、専用のTKSV.EXE・TKLD.EXE(未公開)がある。
  61.  
  62.   ※基本画像領域(だんでぃだんでぃの例)
  63.   前述の座標(1,1)-(56,18) を基本画像領域と設定してある。
  64.   データのサイズは 64566バイトになる。(パレット、その他のデータを含む)
  65.  
  66.  2.2 シナリオ領域
  67.  
  68.    シナリオメッセ-ジ、及び設問メッセ-ジを表示するための領域である。メ
  69.   ッセ-ジは常に最上行から一連の単位で表示されていき、キ-ボ-ドからの応
  70.   答を待つ。キ-ボ-ドから正しい応答があると、メッセ-ジは消去され次のメ
  71.   ッセ-ジ表示に移る。
  72.   ゲーム制作においてユーザーが気を付けるところは、
  73.      ・1メッセージを5行以内にする事
  74.   これだけである。(注・選択肢の表示方法も同様に5行以内にする事)
  75.  
  76.  2.3 マスコット領域
  77.  
  78.    マスコットを表示するための領域である。現得点、及び、解答の正否に色を
  79.   付けるための泣き笑いや何かマスコットを表示したい場合はここを使う。
  80.   前述の画面中(58,6)-(76,18) がこれにあたる。
  81.   マスコット領域だけは固定であり、ユーザーは変更できない。
  82.   表示のオン/オフはTKCL文法で可能である。
  83.   データのサイズは 15862バイトになる。(パレット、その他のデータ含む)
  84.   データは TKSV.EXEで作られたデータファイルがそのまま使用できる
  85.  
  86. 3. 文
  87.  
  88.   TKCLテキストファイルは文によって構成される。文には、コマンド文とメッ
  89.  セ-ジ文、及び、コメント文がある。
  90.   コマンド文は1つのコマンドを持っている文であり、半角文字により構成されて
  91.  いなければならない。1つのコマンド文には1つのコマンドしか記述できない。1
  92.  つの文に複数のコマンドを記述した場合、2つ目以降のコマンドは無視される
  93.   メッセ-ジ文は直前のコマンド文によって宣言され、スクリ-ンのシナリオ領域、
  94.  または設問領域に表示されるべきデ-タを持っている。
  95.    コメント文には明示的宣言はなく、TKSHLにより自動認識される。すなわち
  96.  1つのコマンドもなく、コマンド文によるメッセ-ジ宣言もない文がこれに該当する。
  97.   文と文とは区切り記号により、識別される。区切り記号には、CR , LF , CR+LF
  98.  および、 ; (セミコロン) がある。 CR+LF は1つの区切り記号として扱う。
  99.  
  100. 4.コマンド仕様
  101.  
  102.   コマンドには次の種類がある。
  103.  
  104.   1). MES     : 次文から1連のメッセ-ジ文があることを宣言する。
  105.     2). MEND  : 1連のメッセ-ジ文の終了を宣言する。
  106.     3). SELECT  : 選択肢の表示と解析を行うための SELECT ブロックの宣言を行う。
  107.     4). CASE    : キ-ボ-ド入力コ-ドの判定のためのコマンドである。
  108.   5). RETRY  : SELECTブロックの先頭に戻る。
  109.     6). SEND  : SELECTブロックの終了を宣言する。
  110.     7). JUMP  : 指定したラベルの処理を分岐させる。
  111.     8). IF   : POINT または FLAGの状態により処理を分岐させる。
  112.     9). POINT  : 得点 (POINT) を増減させる。
  113.  ※10). FLAG   : FLAGの設定を行う。
  114.  ※11). PICTURE : 画像の表示を行う。
  115.  ※12). CLEAR   : 画面の(全面)クリアを行う。
  116.    13). CHAIN   : 現在のテキストファイルを終了させて他のテキストファイルで
  117.          処理を行う。
  118.    14). EXIT  : ゲ-ムを終了させる。
  119.  ☆15). MASCOT  : マスコットファイルの指定や、表示のオン/オフを行なう。
  120.  ☆16). GCOPY   : 裏VRAMから表VRAMへ領域志向のコピーを行なう。
  121.  ☆17). PAUSE   : 動作を一時中断させる
  122.  
  123.  ※は Ver2.0 で機能拡張したコマンドである。
  124.  ☆は Ver2.0 から追加されたコマンドである。
  125.  
  126.  4.1 MES コマンド
  127.  
  128.    次の文から、一連のメッセ-ジ文があることを宣言する。メッセ-ジ文はMEND
  129.    コマンド文が出現するまで連続する。メッセ-ジ文は、半角の';'コ-ド,CRコ
  130.    -ド、または MENDコマンドが現れるまで連続してスクリ-ンのメッセ-ジ領域
  131.   に表示され、キ-ボ-ドのリタ-ンキ-応答を待ってから次の文に進む。
  132.  
  133.    Ex.
  134.             MES
  135.             「ふ---む、なかなかいいお尻してるなあ」 | この2行は連続 
  136.       「え? なにか言った?」<CR>        | して表示される。
  137.       「いや、なんにも・・」;
  138.       MEND
  139.  
  140.  4.2 MENDコマンド
  141.  
  142.    一連のメッセ-ジ文の終了を宣言する。このコマンドは、MES文、または、
  143.   SELECT文と組み合わせて使用する。
  144.  
  145.  4.3 SELECT コマンド
  146.  
  147.    選択肢による設問と、その応答を処理するための SELECT ブロックの開始宣言
  148.   である。1つの SELECT ブロックは SEND 文により終了する。1つの SELECT ブ
  149.   ロックには、2つ以上の設問メッセ-ジ文、及び2つ以上の CASE コマンド文
  150.   を含んでいなければならない。 
  151.       SELECTコマンドは、次文から一連の設問メッセ-ジ文があることも宣言する。
  152.   メッセ-ジ文は MEND コマンドが出現するまで連続し、スクリ-ンの設問領域に
  153.   表示される。表示領域の制限により設問メッセ-ジは5行以内とする。全部のメ
  154.   ッセ-ジを表示後、キ-ボ-ド応答待ちとなり、入力コ-ドに対する処理は、
  155.   CASE コマンド文により決定される。
  156.  
  157.   Ex.
  158.  
  159.         SELECT
  160.           1.いいわけをする
  161.        2.おならをする
  162.       3.いきなりナニをナニする
  163.           4.笑ってごまかす
  164.      MEND 
  165.           CASE 1
  166.             MES
  167.             「は--い、さいなら~」
  168.       MEND;   EXIT;          死に~ 
  169.           CASE 2
  170.             POINT +20;  RETRY;     プラス 20点 でもう一度
  171.           CASE 3
  172.             MES; 「ナニをナニすんのよおっ!」
  173.       MEND
  174.             POINT -30          マイナス 30点 で  ABC に分岐  
  175.             JUMP ABC
  176.           CASE 4
  177.             MES
  178.             「しゅわっち!!」
  179.       MEND
  180.             POINT +50           プラス 50点で次に進む  
  181.         SEND
  182.  
  183.  4.4 CASE コマンド 
  184.  
  185.        CASE コマンドは、SELECTブロックの中でのみ有効である。CASE コマンドは
  186.    デ-タを伴っており、その書式は、
  187.  
  188.      CASE c     である。 cは、1つの半角文字である。
  189.  
  190.    CASEコマンドで指定された文字コ-ドとキ-ボ-ド入力文字コ-ドが一致する
  191.    と、連続する CASE ブロックを実行する。 CASE ブロックは、次に CASE コ
  192.      マンド または、SEND コマンドが出現するまで有効である。 CASEブロックの
  193.    中では、SELECT, CASE, SEND を除く全てのコマンドが記述可能である。
  194.  
  195.    なお、設問メッセ-ジで表示する項目番号と CASEコマンドで指定するコ-ド
  196.   とは文法的には無関係である。普通の神経を持った作製者ならば一致するはずで
  197.   あるけど・・・
  198.  
  199.  4.5 RETRY コマンド
  200.  
  201.    RETRYコマンドは、SELECTブロックの中でのみ有効であり、SELECTブロックの
  202.   冒頭のキ-ボ-ド入力待ちの状態に戻る。
  203.      
  204.   4.6 SEND コマンド
  205.  
  206.       SENDコマンドはいわゆるひとつの SELECTブロックの終了を宣言する。
  207.  
  208.  4.7 JUMP コマンド
  209.  
  210.    JUMPコマンドは、デ-タを伴っており、その書式は、
  211.  
  212.     JUMP  ラベル名   である。
  213.  
  214.    ラベル名は 半角文字で8文字、全角で4文字までとする。定義されたラベルは
  215.   同一のテキストファイル中に定義されていなければならない。
  216.    ラベルを定義する場合、文の先頭から'#'に続けてラベル名を記述する。ラベル
  217.   の定義はコマンド文でもコメント文でも可能である。ただ、メッセ-ジ文には定義
  218.   してはならない。また、ラベル名はコマンドとして定義されている半角の文字列を
  219.   含んでいてはならない。従って、ラベル名には全角か数字を使用することが望まし
  220.   い。
  221.       JUMP先のラベルは他の SELECTブロックの中に定義することも可能である。しか
  222.     し、その場合、RETRYコマンドが出現しても無視される。
  223.  
  224.    Ex. 
  225.            ........
  226.            ........          
  227.            JUMP A1110
  228.            .......
  229.            .........
  230.           #A1110  MES
  231.             「ジャンプ先だよ--ん」
  232.        MEND
  233.  
  234.  4.8 IF コマンド
  235.  
  236.      IF コマンドはデ-タを伴っており、その書式は、
  237.  
  238.     IF  POINT  =  nn  GOTO  ラベル名   
  239.       FLAGn  <  
  240.                   >
  241.  
  242.      である。nnは4桁以内の10進数、ラベル名は JUMP コマンドと同仕様である。
  243.      FLAGn は FLAG0 ~ FLAG9 の範囲で指定する。
  244.     =, < , > の条件式が真であるならば、ラベル名で指定されたラベルに処理を
  245.   分岐させ、条件式は偽ならば、次のコマンドを実行する。
  246.  
  247.  4.9 POINT コマンド
  248.  
  249.    POINT コマンドは、デ-タを伴っており、その書式は、
  250.  
  251.     POINT +nn
  252.               -nn
  253.  
  254.     である。 nn は4桁以内の10進数である。得点(POINT)を増減させるのに使用
  255.   する。 POINT の初期値は 0である。
  256.     POINTコマンドによりPOINT値の変動があった場合には、自動的にマスコット画像
  257.     表示を行う。マスコット画像デ-タは3種類有り、得点の増減にマッチした画像
  258.     を、テキストファイルと同じディレクトリに用意しておかなければならない。後
  259.     述の、MASCOTコマンドを使用しない場合のファイル名は下記に示すものであり、
  260.     起動時に、バッファに読み込まれる。ファイルが存在しない場合は読み込まれな
  261.     い。
  262.  
  263.     得点変化なしの時: ANM1.TKG
  264.         得点減少の時  : ANM2.TKG
  265.         得点増加の時  : ANM3.TKG
  266.  
  267.   マスコット画像を変更する時は、'MASCOT'コマンドを使用する。
  268.  
  269.  4.10 FLAG コマンド
  270.  
  271.    FLAG コマンドはデ-タを伴っており、その書式は、
  272.  
  273.     FLAGn = nn
  274.     FLAGn + nn
  275.         FLAGn - nn
  276.  
  277.     である。 nnは4桁以内の10進数である。FLAGn は FLAG0 ~ FLAG9 の範囲
  278.   で指定する。FLAG コマンドが指示されると指定された FLAG に指定された数値
  279.   を代入、加算、減算する。設定した FLAG0 ~ FLAG9 は IF コマンドで参照す
  280.   ることができる。なお、 FLAG0 ~ FLAG9 の初期値は全て0である。
  281.  
  282.  4.11  PICTURE コマンド
  283.  
  284.    PICTUREコマンドはデ-タを伴っており、その書式は、
  285.  
  286.     PICTURE[/B] ファイル名
  287.  
  288.   である。ファイルパス名は、画像デ-タを持ったファイルを示す。画像デ-タ
  289.   ファイルは、いわゆるひとつのTKツ-ルである、TKSVにより作製された
  290.   ファイルもしくはそれに準ずるものであること。
  291.    このコマンドが指示されると、指定されたファイルを読み込み、G-VRAM上に
  292.   展開する。PICTURE/B とした時は裏G-VRAM に展開する。裏G-VRAM に展開した
  293.   場合に、 GCOPYコマンドでデータを転送させることが出来る。
  294.  
  295.  4.12  CLEAR コマンド
  296.  
  297.    CLEAR コマンドは、基本画像エリア、全画面エリアの領域をクリアする機能
  298.    を持ち、その書式は、
  299.  
  300.    CLEAR [ALL]
  301.  
  302.    ALLなし:基本画像エリアをクリアする。
  303.    ALLあり:全領域をクリアする。
  304.  
  305.  4.13  CHAIN コマンド
  306.  
  307.    CHAIN コマンドは、デ-タを伴っており、その書式は、
  308.  
  309.      CHAIN  ファイルパス名
  310.  
  311.   である。ファイルパスは、TKCLテキストファイルを示す。このコマンドが
  312.   指示されると指定されたファイルを読み込み、その先頭を、次のコマンドとし
  313.   て処理を続ける。実行中のテキストファイルはクロ-ズされる。
  314.  
  315.  4.14 EXIT コマンド
  316.  
  317.    ゲ-ムを終了させる。この、コマンドが実行されるとTKSHLの実行が終
  318.   了し、コンソ-ルの制御は、MS-DOSに戻る。
  319.  
  320.  4.15 MASCOT コマンド(Ver2.0)
  321.  
  322.    マスコット領域へ表示するファイルを指定。表示のオン/オフ機能を持つ。
  323.  
  324.    書式:MASCOT fn1 fn2 fn3
  325.             MASCOT ON
  326.             MASCOT OFF
  327.  
  328.        fn1:通常表示されるファイル(デフォルト:ANM1.TKG)
  329.        fn2:ポイントが下がったときに表示されるファイル(デフォルト:ANM2.TKG)
  330.        fn3:ポイントが上がったときに表示されるファイル(デフォルト:ANM3.TKG)
  331.        ON :マスコット表示をオンにする
  332.               OFF:マスコット表示をオフにする
  333.  
  334.    TKSHL起動時に、ANM1~ANM3.TKGが存在すると、それらをバッファに
  335.    自動的に読み込む、ファイルが存在しなければ読み込まれない。その後、
  336.    点数の上下により自動的にバッファよりVRAMに転送され表示される。
  337.    以降、再び'MASCOT'コマンドでファイル名を指定されるまでバッファの内
  338.    容は保持される。データファイルからON/OFFにより、表示/非表示の切り
  339.    替えができる。TKSHL起動時はMASCOT ON の状態になっている。
  340.  
  341.    ゲーム中、全領域を使用したグラフィックを用いる際は、表示をオフにし
  342.    た方がより効果的な演出効果を狙える。
  343.  
  344.    (注意)'PICTURE' コマンドで画像を呼び出す際、マスコットファイルの
  345.        パレットがメイン画像と異なる場合に、マスコット画像の色合い
  346.        がおかしくなる。ゲームの感じがよほどおかしくなる場合には、
  347.        'CLEAR ALL' で全グラフィック画面をクリアした後、
  348.        'MASCOT OFF'でマスコット画像を非表示にしておいてから、
  349.        'PICTURE' コマンドで画像を表示すれば汚いマスコットを見られ
  350.        ずに済ます事ができる。
  351.  
  352.  4.16 GCOPY コマンド(Ver2.0)
  353.  
  354.    書式 GCOPY left1 top1 right1 bottm1 left2 top2
  355.  
  356.       left1 :コピー元(裏G-VRAM)の左座標
  357.       top1   :コピー元(裏G-VRAM)の上座標
  358.             right1 :コピー元(裏G-VRAM)の右座標
  359.             bottom1:コピー元(裏G-VRAM)の下座標
  360.             left2 :コピー先(表G-VRAM)の左座標
  361.             top2  :コピー先(表G-VRAM)の上座標
  362.  
  363.    裏G-VRAMより表G-VRAMへコピーする機能を持つ。
  364.    座標はテキスト座標(0,0)-(79,24) で示す。それ以下のドット単位でのコピー
  365.    はできない。数値は必ず2桁で示さなければならない。また、要注意事項とし
  366.    て、コピーする領域は64KBを超えてはならない。64KBは画面半分に相
  367.    当する。
  368.  
  369.    例)GCOPY 00 00 79 24 00 00  ← これは全画面コピーであるが、
  370.                     64KBを超えるので動作しない
  371.  
  372.    例)GCOPY 00 00 09 09 10 22   ← これはデータ範囲は64KB以下であるが
  373.                     座標(10,22) から10*10 のデータの転送は
  374.                     不可能であるので動作しない
  375.  
  376.       例)GCOPY 00 00 09 09 70 15   ← これは、左上10*10 領域を、右下10*10 
  377.                          領域に転送する
  378.  
  379.    裏V-RAMから表V-RAMに転送するので、'PAUSE' コマンドで時間の調節
  380.    をしつつ、裏V-RAMから次々と転送する事により、アニメーション処理が可
  381.    能になる。
  382.  
  383.  4.17 PAUSE コマンド(Ver2.0)
  384.  
  385.    書式 PAUSE xx
  386.  
  387.       機能 xx/100秒処理を停止する
  388.  
  389.  5.最後に
  390.  
  391.     TKSHLもバージョン2となり、アニメーション機能を筆頭にゆっくり
  392.    とではありますが進歩しております。皆様からのご意見やご感想のメールや
  393.    ご要望を伺い参考になりました。どうもありがとうございました。皆様から
  394.    のご要望中に多かった「セーブ機能」に関しましては保留となりました事を
  395.    お許しください。
  396.     私どもはこのプログラムをゲーム用ばかりでなく他の用途にも使用できる
  397.    可能性を持っていると考えています。楽しい用途を思いつかれた方や、ゲー
  398.    ム用シナリオを書いてみたい方、書いている方、画像で良いネタがある方、
  399.    その他ご意見をお持ちの方は是非メールをくださる様お願い申し上げます。
  400.  
  401.                                             1990-08-08
  402.                       (C)1990 TK-team amusement ware
  403.  
  404.                          作成・としくん(KAB)
  405.                             Qたらう
  406.